package topology;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import ann.Edge;

public abstract class Topology implements Iterable<Edge>{
	protected List<Edge> edges;
	protected boolean ready;
	
	protected Topology(){
		edges = new ArrayList<Edge>();
		ready = false;
	}
	
	public Iterator<Edge> iterator() {
		assert(ready == true);
		return edges.iterator();
	}
	
	public abstract void setup(int fromSize, int toSize);

	public boolean isReady() {
		return ready;
	}
	
	public abstract Topology clone();
}
